package com.xiaoshuidi.cloud.module.member.service.comment;

import com.xiaoshuidi.cloud.framework.common.pojo.PageResult;
import com.xiaoshuidi.cloud.module.member.controller.admin.comment.vo.CommentPageVO;
import com.xiaoshuidi.cloud.module.member.controller.admin.comment.vo.CommentStatisticsReqVo;
import com.xiaoshuidi.cloud.module.member.controller.admin.comment.vo.CommentStatisticsVo;
import com.xiaoshuidi.cloud.module.member.controller.admin.comment.vo.CommentStewardPageReqVo;
import com.xiaoshuidi.cloud.module.member.controller.admin.comment.vo.CommentStewardPageVo;
import com.xiaoshuidi.cloud.module.member.controller.app.comment.vo.AppMemberListVO;
import com.xiaoshuidi.cloud.module.member.controller.app.comment.vo.MemberCommentCreateVO;
import com.xiaoshuidi.cloud.module.member.controller.app.comment.vo.MemberCommentRespVO;

import java.util.List;

public interface MemberCommentService {
    /**
     * 新增评论
     * @param vo
     * @return
     */
    Boolean create(MemberCommentCreateVO vo);

    /**
     * 获取评论详情
     * @param id
     * @return
     */
    MemberCommentRespVO getById(Long id);

    /**
     * 根据用户id获取各种类型的评论列表
     * @param userId
     * @return
     */
    List<AppMemberListVO> getListByUserId(Long userId,Boolean status);


    /**
     * 评价汇总详情
     * @param reqVo
     * @return
     */
    List<CommentStatisticsVo> getCommentStatistics(CommentStatisticsReqVo reqVo);

    /**
     * 分页查询评论列表
     * @param pageVO
     * @return
     */
    PageResult<MemberCommentRespVO> getCommentPage(CommentPageVO pageVO);

    /**
     * 综合统计页面分页（根据管家得分分页）
     * @param pageVO
     * @return
     */
    PageResult<CommentStewardPageVo> getCommentStewardPage(CommentStewardPageReqVo pageVO);

    MemberCommentRespVO getByMessageId(Long id);

    void updateUserId(Long oldUserId, Long userId);
}
